#include <stdint.h>
const uint16_t rainbow_table[256] = {
    0x3F06, 0x3F06, 0x5F06, 0x7F06, 0x9F06, 0xBF06, 0xBF06, 0xDF06,
    0xFF06, 0x1F07, 0x3F07, 0x3F07, 0x5F07, 0x7F07, 0x9F07, 0xBF07,
    0xBF07, 0xDF07, 0xFF07, 0xFF07, 0xFE07, 0xFE07, 0xFD07, 0xFD07,
    0xFD07, 0xFC07, 0xFC07, 0xFB07, 0xFB07, 0xFB07, 0xFA07, 0xFA07,
    0xFA07, 0xF907, 0xF907, 0xF807, 0xF807, 0xF807, 0xF707, 0xF707,
    0xF607, 0xF607, 0xF607, 0xF507, 0xF507, 0xF407, 0xF407, 0xF407,
    0xF307, 0xF307, 0xF207, 0xF207, 0xF207, 0xF107, 0xF107, 0xF107,
    0xF007, 0xF007, 0xEF07, 0xEF07, 0xEF07, 0xEE07, 0xEE07, 0xED07,
    0xED07, 0xED07, 0xEC07, 0xEC07, 0xEB07, 0xEB07, 0xEB07, 0xEA07,
    0xEA07, 0xEA07, 0xE907, 0xE907, 0xE807, 0xE807, 0xE807, 0xE707,
    0xE707, 0xE607, 0xE607, 0xE607, 0xE507, 0xE507, 0xE407, 0xE407,
    0xE407, 0xE307, 0xE307, 0xE207, 0xE207, 0xE207, 0xE107, 0xE107,
    0xE107, 0xE007, 0xE007, 0xE00F, 0xE00F, 0xE00F, 0xE017, 0xE017,
    0xE01F, 0xE01F, 0xE01F, 0xE027, 0xE027, 0xE02F, 0xE02F, 0xE02F,
    0xE037, 0xE037, 0xE03F, 0xE03F, 0xE03F, 0xE047, 0xE047, 0xE047,
    0xE04F, 0xE04F, 0xE057, 0xE057, 0xE057, 0xE05F, 0xE05F, 0xE067,
    0xE067, 0xE067, 0xE06F, 0xE06F, 0xE077, 0xE077, 0xE077, 0xE07F,
    0xE07F, 0xE087, 0xE087, 0xE087, 0xE08F, 0xE08F, 0xE08F, 0xE097,
    0xE097, 0xE09F, 0xE09F, 0xE09F, 0xE0A7, 0xE0A7, 0xE0AF, 0xE0AF,
    0xE0AF, 0xE0B7, 0xE0B7, 0xE0BF, 0xE0BF, 0xE0BF, 0xE0C7, 0xE0C7,
    0xE0C7, 0xE0CF, 0xE0CF, 0xE0D7, 0xE0D7, 0xE0D7, 0xE0DF, 0xE0DF,
    0xE0E7, 0xE0E7, 0xE0E7, 0xE0EF, 0xE0EF, 0xE0F7, 0xE0F7, 0xE0F7,
    0xE0FF, 0xE0FF, 0xC0FF, 0xA0FF, 0x80FF, 0x80FF, 0x60FF, 0x40FF,
    0x20FF, 0x00FF, 0x00FF, 0xE0FE, 0xC0FE, 0xA0FE, 0x80FE, 0x80FE,
    0x60FE, 0x40FE, 0x20FE, 0x00FE, 0x00FE, 0xE0FD, 0xC0FD, 0xA0FD,
    0x80FD, 0x80FD, 0x60FD, 0x40FD, 0x20FD, 0x00FD, 0x00FD, 0xE0FC,
    0xC0FC, 0xA0FC, 0xA0FC, 0x80FC, 0x60FC, 0x40FC, 0x20FC, 0x20FC,
    0x00FC, 0xE0FB, 0xC0FB, 0xA0FB, 0xA0FB, 0x80FB, 0x60FB, 0x40FB,
    0x20FB, 0x20FB, 0x00FB, 0xE0FA, 0xC0FA, 0xA0FA, 0xA0FA, 0x80FA,
    0x60FA, 0x40FA, 0x20FA, 0x20FA, 0x00FA, 0xE0F9, 0xC0F9, 0xA0F9,
    0xA0F9, 0x80F9, 0x60F9, 0x40F9, 0x40F9, 0x20F9, 0x00F9, 0xE0F8,
    0xC0F8, 0xC0F8, 0xA0F8, 0x80F8, 0x60F8, 0x40F8, 0x40F8, 0x20F8
};
const uint16_t ironbow_table[256] = {
    0xFFFF, 0xFFFF, 0xDFFF, 0xDEF7, 0xBEF7, 0xBEF7, 0x9EF7, 0x9DEF,
    0x7DEF, 0x7DEF, 0x5DEF, 0x5CE7, 0x3CE7, 0x3CE7, 0x1CE7, 0x1BDF,
    0xFBDE, 0xFBDE, 0xDBDE, 0xDAD6, 0xBAD6, 0xBAD6, 0x9AD6, 0x99CE,
    0x79CE, 0x79CE, 0x59CE, 0x58C6, 0x38C6, 0x38C6, 0x18C6, 0x17BE,
    0xF7BD, 0xF7BD, 0xD7BD, 0xD6B5, 0xB6B5, 0xB6B5, 0x96B5, 0x96B5,
    0x75AD, 0x75AD, 0x55AD, 0x55AD, 0x34A5, 0x34A5, 0x14A5, 0x14A5,
    0xF39C, 0xF39C, 0xD39C, 0xD39C, 0xB294, 0xB294, 0x9294, 0x9294,
    0x718C, 0x718C, 0x518C, 0x518C, 0x3084, 0x3084, 0x1084, 0x1084,
    0xEF7B, 0xEF7B, 0xCF7B, 0xCF7B, 0xAE73, 0xAE73, 0x8E73, 0x8E73,
    0x6D6B, 0x6D6B, 0x4D6B, 0x4D6B, 0x2C63, 0x2C63, 0x0C63, 0x0C63,
    0xEB5A, 0xEB5A, 0xCB5A, 0xCB5A, 0xAA52, 0xAA52, 0x8A52, 0x8A52,
    0x694A, 0x694A, 0x494A, 0x494A, 0x294A, 0x2842, 0x0842, 0x0842,
    0xE841, 0xE739, 0xC739, 0xC739, 0xA739, 0xA631, 0x8631, 0x8631,
    0x6631, 0x6529, 0x4529, 0x4529, 0x2529, 0x2421, 0x0421, 0x0421,
    0xE420, 0xE318, 0xC318, 0xC318, 0xA318, 0xA210, 0x8210, 0x8210,
    0x6210, 0x6108, 0x4108, 0x4108, 0x2108, 0x2000, 0x0000, 0x0000,
    0x0100, 0x0200, 0x0300, 0x0408, 0x0508, 0x0508, 0x0608, 0x0710,
    0x0810, 0x0910, 0x0A18, 0x0B18, 0x0C18, 0x0D18, 0x0D20, 0x0E20,
    0x0F20, 0x0F28, 0x0F30, 0x0F30, 0x0F38, 0x0F38, 0x0F40, 0x0F48,
    0x1048, 0x1050, 0x1050, 0x1058, 0x1060, 0x1060, 0x1068, 0x1068,
    0x1170, 0x1178, 0x1178, 0x1180, 0x3180, 0x3188, 0x3190, 0x3190,
    0x3198, 0x3198, 0x31A0, 0x31A0, 0x31A8, 0x31B0, 0x51B0, 0x51B8,
    0x51B8, 0x70B8, 0x8FC0, 0xAFC0, 0xAEC0, 0xCDC0, 0xEDC8, 0x0CC9,
    0x0CC9, 0x2BC9, 0x4AD1, 0x6AD1, 0x69D1, 0x88D9, 0xA8D9, 0xC7D9,
    0xC6D9, 0xE6D9, 0x05DA, 0x25E2, 0x45E2, 0x44E2, 0x64E2, 0x84E2,
    0xA4E2, 0xC3E2, 0xE3E2, 0xE3E2, 0x02EB, 0x22EB, 0x42EB, 0x61EB,
    0x81EB, 0xA1EB, 0xA1EB, 0xC1EB, 0xE1EB, 0x01EC, 0x21EC, 0x41F4,
    0x62F4, 0x82F4, 0xA2F4, 0xC2F4, 0xE2F4, 0x02F5, 0x02F5, 0x22F5,
    0x42F5, 0x62F5, 0x82F5, 0xA2F5, 0xC2F5, 0xE2F5, 0xE2F5, 0x03FE,
    0x23FE, 0x43FE, 0x63FE, 0x83FE, 0xA3FE, 0xC3FE, 0xC4FE, 0xE4FE,
    0x05FF, 0x26FF, 0x28FF, 0x4AFF, 0x4CFF, 0x4DFF, 0x6FFF, 0x71FF,
    0x92FF, 0x94FF, 0xB6FF, 0xB7FF, 0xD9FF, 0xDBFF, 0xFDFF, 0xE3FF
};
